Computer systems typically include one or more processors that support access to an externally attached storage device such as a shared storage system. According to certain conventional applications, multiple computers may couple to the shared storage system via a network connection or dedicated high-speed communication link. Two or more of the computers may be afforded access to the same files stored in the shared storage system.
To prevent corruption of files in the shared storage system, conventional applications typically employ some means for preventing two or more users from modifying the same file at the same time. Otherwise, two or more computers having shared access to a file in the shared storage system may simultaneously access and modify the same file without accounting for each other's action.
Most shared storage applications utilize a file system to keep track of data accessible by each of the users. In general, a file system is the overall structure in which computer files are named, stored and organized. Typical file systems consist of files, directories, and information (e.g., metadata) needed to locate and access the files in the file system. Thus, file systems in general provide logical organization for user data stored in a shared storage system.
In order to maintain the logical organization, the file system keeps track of metadata for its own purposes. The metadata describes the internal organization of the file system. For example, metadata may identify free space size and location of free space blocks within the underlying storage media of the shared storage system as well as a tree-like structure of user directories of the shared storage system. Additionally, metadata associated with each file may include information such as i) file size, name and attributes, ii) a location and size of the blocks allocated by the file, iii) security access information, etc. Thus, properly maintained metadata associated with the shared storage system is important for accessing corresponding data.